(function() {
	var $table = $("#optimize-items");
	
	$('td.op a.optimize', $table).click(function(){
		var $row = $(this).closest("tr");
		var numIid = $row.attr('num_iid');
		
		window.$dialog.dialog("option", "buttons", {
			确定: function() {
				var numIid = $('div#optimize-form').attr('numIid');
				var newTitle = $('input.new-title', window.$dialog).val();
				var $msg = $('div.msg', window.$dialog);
				if (!newTitle)
				{
					$msg.text("标题不能为空。");
					return false;
				}
				$.ajax({
					url: 'update-title',
					data: {
						numIid: numIid,
						title: newTitle
					},
					type: 'POST',
					success: function(data, textStatus, jqXHR){
						var error = jqXHR.getResponseHeader('error');
						if (error)
						{
							var msg = jqXHR.getResponseHeader('msg') || '未知错误。';
							$msg.text(msg);
							return false;
						}
						window.$dialog.dialog('close');
						window.optimize.reload();
					}
				});
				return false;
			},
			取消: function() {
				$(this).dialog( "close" );
				return false;
			}
		});
		window.$dialog.dialog('open');
		window.$dialog.html("<img src='images/loading.gif'/>");
		$.ajax({
			url: 'optimizing',
			data: {numIid: numIid},
			type: 'POST',
			success: function(data) {
				window.$dialog.html(data);
			}
		});
		return false;
	});
	
	$('td.title a.edit', $table).click(function(){
		$(this).hide();
		var $parent = $(this).parent();
		$('div.editor', $parent).show();
		$('div.editor input', $parent).focus();
		return false;
	});
	
	function updateTip($input)
	{
		var $editor = $input.closest('div.editor');
		var length = window.utils.bytesLength($input.val());
		var left = 30 - length/2;
		$('div.tip span.left-chars', $editor).html(left);
		if (left < 0)
		{
			$input.addClass('err');
		}
		else
		{
			$input.removeClass('err');
		}
	}
	
	function commitEditor($input)
	{
		var newTitle = $input.val();
		var $td = $input.closest('td');
		var title = $td.attr('title');
		var $editor = $input.closest('div.editor');
		if (newTitle == title)
		{
			$editor.hide();
			$('a.edit', $editor.parent()).text(newTitle).show();
			return false;
		}
		var $row = $input.closest("tr");
		var numIid = $row.attr('num_iid');
		if (window.utils.bytesLength(newTitle) <= 60)
		{
			$input.removeClass('err');
			$.ajax({
				url: 'update-title',
				data: {
					numIid: numIid,
					title: newTitle
				},
				type: 'POST',
				success: function(data, textStatus, jqXHR) {
					var error = jqXHR.getResponseHeader('error');
					if (error)
					{
						var msg = jqXHR.getResponseHeader('msg') || '未知错误。';
						alert(msg);
						return false;
					}
					$td.attr('title', newTitle);
					$editor.hide();
					$('a.edit', $editor.parent()).text(newTitle).show();
				}
			});
		}
		else
		{
			$input.addClass('err');
		}
	}
	
	$('td.title input', $table).focus(function(){
		updateTip($(this));
	}).keyup(function(event){
		if (event.which === 13)
		{
			commitEditor($(this));
			return false;
		}
		updateTip($(this));
	}).blur(function(){
		commitEditor($(this));
	});
})();